Page({
  data:{
    isincome:true, //判断是收入还是支出
    incomelist:[], //收入数组
    paylist:[], //支出数组
    isinput:true, //判断是否输入
    incometotal:0, //收入汇总
    paytotal:0, //支出汇总
    inputval:'', //输入内容
    date:'', //日期
    dateArr:[] //年月汇总
    },
    click(e){   //点击事件调用此函数实现收入和支出的隐藏显示
      console.log(e)
      if(e.currentTarget.dataset.name=='income'){
        this.setData({
          isincome:true
        })
      }else{
        this.setData({
          isincome:false
        })
      }
    },
    add(){   //点击增加按钮调用此函数
      this.setData({
        isinput:!this.data.isinput
      })
    },
    confirm(e){  //输入框回车后调用此函数 获取输入框内容
      console.log(e)
      let je = Number(e.detail.value)  //输入框数据
      let incomelist = this.data.incomelist //声明收入汇总数组
      let paylist = this.data.paylist  //声明支出汇总数组
      var nianyue = (this.data.date).substring(0,7) //声明nianyue 用substring只截取年月 
      let Arr = {date:this.data.date,money:je};  //此数组存储当前的日期和当前输入框数据
      let dateArr = this.data.dateArr //声明年月汇总数组
      if(this.data.isincome){  //判断是收入还是支出
        incomelist.push(Arr);  //将当前存储的Arr数组 push到 收入 汇总数组中
        var incometotal  = incomelist.reduce(function(sum,v){ //计算当前全部收入赋值给incometotal
          return sum +=v.money   
        },0)
        this.setData({ //将以上数据传回data
          incomelist:incomelist,
          incometotal:incometotal,
          inputval:'',
          isinput:false,
        })
      }else{  
        paylist.push(Arr)  //将当前存储的Arr数组 push到 支出 汇总数组中
        var paytotal = paylist.reduce(function(sum,v){
            return sum +=v.money
          },0)
        this.setData({
          paylist:paylist,
          inputval:'',
          isinput:false,
          paytotal:paytotal,
        })
      }

    let pd = true;   //判断年月汇总是否有当前的年月
    for(let i =0;i<dateArr.length;i++){
        if(dateArr[i].date==nianyue) pd = false;  //已经有了就false
    }
    //没有出现就声明Arr2数组存储 年月和  支出   收入   push进dateArr数组
    if(pd) {let Arr2 = {date:nianyue,inc:0,pay:0};dateArr.push(Arr2)}
      console.log(dateArr);

    this.setData({
          dateArr:dateArr
    })
    
    //调用nianyue函数将要用到的数据传入
    this.nianyue(incomelist,paylist,dateArr,nianyue);
    },

    bindDateChange: function (e) { //日期选择器确定后会调用这个函数 然后赋值给date
      console.log('picker发送选择改变，携带值为', e.detail.value)
      this.setData({
        date: e.detail.value
      })
    },
    nianyue(incomelist,paylist,dateArr){
        for(let i=0;i<dateArr.length;i++){  
            let sum = 0;    //判断收入汇总数组 相同年月的就相加
            for(let j=0;j<incomelist.length;j++){
                if(dateArr[i].date==(incomelist[j].date).substring(0,7)){
                     sum += incomelist[j].money;
                }
            }
            dateArr[i].inc = sum
        }
        for(let i=0;i<dateArr.length;i++){
            let sum = 0;   //判断支出 汇总数组 相同年月的就相加
            for(let j=0;j<paylist.length;j++){
                if(dateArr[i].date==(paylist[j].date).substring(0,7)){
                     sum += paylist[j].money;
                }
            }
            dateArr[i].pay = sum
        }
        console.log(dateArr)
        this.setData({
            dateArr:dateArr
        })
    },
    onUnload(){ //页面返回调用此函数
      console.log('onUnload')
      this.onHide() //调用onHide函数
    },
    onHide(){
      console.log('onHide') 
      //声明store 数组用wx.setStorage存储
      let store = [this.data.incomelist,this.data.paylist,this.data.incometotal,this.data.paytotal,this.data.date,this.data.dateArr]
      wx.setStorage({
          data:store,
          key:'money'
        })
    },
    onLoad(option){ //初始化页面启用此函数
      console.log('onLoad')
      let that = this 
      //用wx.getStorage 获取之前存储的内容传回data中
      wx.getStorage({
        key:'money',
        success(e){
          console.log(e)
          that.setData({
            incomelist:e.data[0],
            paylist:e.data[1],
            incometotal:e.data[2],
            paytotal:e.data[3],
            date:e.data[4],
            dateArr:e.data[5],
          })
        }
      })
    }
})